package day02;
//数据类型的演示
public class DateTypeDemo {
    public static void main(String[] args) {
        //5)char 字符型 2字节
        char c1='女';//字符女
        char c2='1';//字符1
        char c3='f';//字符f
        char c4=' ';//空格符
       // char c5='10';//编译错误,char类型只能存储一个字节,char类型的10跟数字类型的10不是同一个数,char类型的10是由'1'和'0'组成
       // char c6=女;//编译错误,char类型的直接值,必须放在单引号中
       // char c7='';//编译错误,char类型在值,里面必须要有且只能用一个字符

        char c8=57;
        System.out.println(c8);
        //c8为char类型,所有结果会根据char类型的形式输出

        //char c=''';//编译错误,如果char类型要输出特殊符号,必须在里面加上\
        char a='\\';
        System.out.println(a);

        //char类型里面必须要有且仅有一个字符
        //char里面的值必须要用单引号引起来
        //如果char类型想要输出特殊符号,需要在特殊符号前加上\



        /*
        //4)boolean 布尔型 1字节
        boolean a=true;//true为布尔型的直接量
        boolean b=false;//false为布尔型的直接量
        //boolean c=250;//编译错误,boolean的类型的结果只能是true或者是false

        //boolean为判断类型,结果只能为,true或false
        System.out.println(a);
         */


        /*
        //3)double 双精度浮点型  8字节
        double a=3.14;//3.14为小数直接量,默认为double
        float b=3.14F;//3.14F为float型的直接量

        double c=2,d=1.9;
        System.out.println(c-d);//0.10000000000000009,有可能会发生舍入误差
        double c1=6.3,d1=3.8;
        System.out.println(c1-d1);

        //double是浮点是默认类型
        //如果要用Float类型,如果在浮点数后面加F或者l
        //double和float计算在时可能会发生舍入误差
        */

        /*
        //2)long 长整型 8字节
        long a=25L;//25L为长整型的直接量
        //long b=10000000000;//编译错误,在整数类型在,int为默认类型,100亿超出了范围
        long c=10000000000L;//在数字后面加L,这个整数的结果就为long类型,而long类型的范围在900万亿多
       // long d=3.14;//3.14为浮点类型,与左边的类型不一致

        long e=1000000000*2*10L;//200亿
        System.out.println(e);
        //  1000000000*3都默认为int类型,在计算在发生了溢出,导致结果不是300亿
        long f=1000000000*3*10L;//<300亿
        System.out.println(f);
        long g=1000000000L*3*10;//300亿
        System.out.println(g);

        //如果这个整数为long类型,则需要在这个数字后面加L或l,否则整数默认为int类型
        //long的范围为正负900万亿
        //如果在计算时,最好把L放在第一个数的后面,可以有效防止计算时溢出
        */

        //发生溢出,需要避免
        /* 1)int整型,4字节,
        int a=25;//25为整数,默认为int类型
        // b=10000000000;//编译错误:整数默认为int类型,1000000000超出了int的取值范围
        //int c=3.14;//编译错误:因为3.14是浮点数,也左边的int类型不一致

        System.out.println(5/2);//2
        System.out.println(2/5);//0
        System.out.println(5/2.0);//2.5

        int d=2147483647;//int的最大值
        d=d+1;
        System.out.println(d);//-2147483648(int)的最小值,发生了溢出,需要避免

        //整数默认为int类型
        //如果输出的结果超出了int类型的最大值,就会发生溢出,需要避免
        //整数与整数计算,结果一样为整数,整型变量只能装整数
        //int的最大值2147483647,如果赋值的时候超出了int的最大值,会发生编译错误
        */


    }
}
